Routing calls through networks has become increasingly complex. For example, service providers must perform a number of lookups and make routing decisions based on results of the lookups. Such lookups and routing decisions typically consume a significant amount of network resources. In addition, processing calls originating from the home network of the called party and processing calls originating from an external network may require different handling. This different handling often adds to the complexity of call processing and signaling.